
/*
 * 不带其它参数的请求
 * 如：event103:主动检查更新
 *     event105:当前任务状态查询
 */
pub fn universal(event: u32) -> String {
    let json_val = serde_json::json!({
        "event": event
    });
    //把pack_json序列化成字符串
    let pack_json_str = serde_json::to_string(&json_val).unwrap_or_else(|err| {
        panic!("Failed to serializeJSON: {}", err);
    });
    return pack_json_str;
}

/*
 * 下载授权请求
 * dvalue:0允许下载 1取消下载
*/
pub fn event101(dvalue: u8) -> String {
    let json_val = serde_json::json!({
        "event": 101,
        "dValue": dvalue
    });
    //把pack_json序列化成字符串
    let pack_json_str = serde_json::to_string(&json_val).unwrap_or_else(|err| {
        panic!("Failed to serialize JSON: {}", err);
    });
    return pack_json_str;
}

/*
 * 升级授权请求
 * uType:0立即升级 1预约升级
 * uValue: uType=0时有效 0允许升级 1取消升级 2推迟升级 3前置条件检查
 * uTime: uType=1时有效 预约升级的时间, eg "08:30"
*/
pub fn event102(u_type: u8, u_value: u8, u_time: &str) -> String {
    let json_val = serde_json::json!({
        "event": 102,
        "uType": u_type,
        "uValue": u_value,
        "uTime": u_time
    });
    //把pack_json序列化成字符串
    let pack_json_str = serde_json::to_string(&json_val).unwrap_or_else(|err| {
        panic!("Failed to serializeJSON: {}", err);
    });
    return pack_json_str;
}

/*
 * 同步配置信息
 * dstate: 自动下载状态 0开启 1关闭
 * ustate: 夜间升级状态 0开启 1关闭
 * vstate: 尝鲜模式 0开启 1关闭
 * ueupver: ueup自定义软件版本号
*/
pub fn event104(dvalue: u8, ustate: u8, vstate: u8, ueupver: &str) -> String {
    let json_val = serde_json::json!({
        "event": 104,
        "dValue": dvalue,
        "ustate": ustate,
        "vstate": vstate,
        "ueupver": ueupver
    });
    //把pack_json序列化成字符串
    let pack_json_str = serde_json::to_string(&json_val).unwrap_or_else(|err| {
        panic!("Failed to serializeJSON: {}",err);
    });
    return pack_json_str;
}